package org.jeecg.modules.demo.timeline.mapper;

import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.timeline.entity.PatentTimeline;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

/**
 * @Description: 专利时间脉络表
 * @Author: jeecg-boot
 * @Date: 2025-01-15
 * @Version: V1.0
 */
@Mapper
public interface PatentTimelineMapper extends BaseMapper<PatentTimeline> {
    
    /**
     * 获取时间脉络统计数据
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @param eventType 事件类型
     * @param inventor 发明人
     * @param institution 申请机构
     * @return 统计数据
     */
    List<Map<String, Object>> getTimelineStatistics(@Param("startDate") String startDate,
                                                   @Param("endDate") String endDate,
                                                   @Param("eventType") String eventType,
                                                   @Param("inventor") String inventor,
                                                   @Param("institution") String institution);
    
    /**
     * 获取年份分布统计
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 年份分布
     */
    List<Map<String, Object>> getYearDistribution(@Param("startDate") String startDate,
                                                 @Param("endDate") String endDate);
    
    /**
     * 获取机构统计
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 机构统计
     */
    List<Map<String, Object>> getInstitutionStats(@Param("startDate") String startDate,
                                                 @Param("endDate") String endDate);
    
    /**
     * 获取发明人统计
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 发明人统计
     */
    List<Map<String, Object>> getInventorStats(@Param("startDate") String startDate,
                                              @Param("endDate") String endDate);
}

